package com.shycloud.mido.member.service.impl;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.shycloud.common.minio.service.MinioTemplate;
import com.shycloud.mido.member.api.entity.SmCoursewareTemp;
import com.shycloud.mido.member.api.vo.SmCoursewareTempVO;
import com.shycloud.mido.member.mapper.SmCoursewareTempMapper;
import com.shycloud.mido.member.service.SmCoursewareTempService;

import lombok.AllArgsConstructor;
import lombok.SneakyThrows;

@Service
@AllArgsConstructor
public class SmCoursewareTempServiceImpl extends ServiceImpl<SmCoursewareTempMapper, SmCoursewareTemp> implements
		SmCoursewareTempService {

	/** 临时课件 mapper */
	private SmCoursewareTempMapper coursewareTempMapper;
	/** 七牛云上传 */
	private MinioTemplate minioTemplate;

	/**
	 * 添加临时课件
	 *
	 * @param smCoursewareTemp teacherId 教师 ID
	 * @param smCoursewareTemp studentId 学生 ID
	 * @param smCoursewareTemp type      类型： 1.曲目 2.视频 3.图片
	 * @param smCoursewareTemp musicId   曲目 ID
	 * @param smCoursewareTemp imgUrl    图片路径
	 * @return java.lang.Boolean
	 * @author nianhua.jiang
	 * @date 2020/11/20 10:53
	 **/
	@Override
	public Boolean addCoursewareTemp(SmCoursewareTemp smCoursewareTemp) {
		//添加临时课件
		return coursewareTempMapper.insert(smCoursewareTemp) == 1;
	}

	@Override
	public IPage getCoursewareTemp(Page<SmCoursewareTempVO> page, String teacherId, String studentId) {
		return coursewareTempMapper.getCoursewareTemp(page, teacherId, studentId);
	}

	@Override
	@SneakyThrows
	public Boolean delCoursewareTemp(Integer id) {

		// 获取临时课件信息
		//SmCoursewareTemp smCoursewareTemp = coursewareTempMapper.selectById(id);
		// 删除临时课件信息
		coursewareTempMapper.deleteById(id);
		// 删除七牛云文件
		// 类型： 1.曲目  2.视频 3.图片

		// TODO 判断正式课件是否有这个文件

//		if ("2".equals(smCoursewareTemp.getType())) {
//			minioTemplate.removeObject("zebra-courseware", smCoursewareTemp.getMp4Url().substring(30));
//		}
//
//		if ("3".equals(smCoursewareTemp.getType())) {
//			minioTemplate.removeObject("zebra-courseware", smCoursewareTemp.getImgUrl().substring(30));
//		}

		return true;
	}
}
